public class Test {

    public static void test1(Animal animal){
        animal.eat();
    }

//    将接口作为参数传递，就不需要像 test2 那样只接受满足动物类型传过来
//    只要是满足能跑的，都能够传过来并且实现
    public static void walk(IRunable runable){
        runable.run();
    }

    public static void main(String[] args) {
        Dog dog = new Dog("旺财",3);
        Duck duck = new Duck("阳阳",7);

        walk(dog);
        walk(duck);

        walk(new Robot());



//    public static void test2(Animal animal){
//        if(animal instanceof Dog){
//            Dog dog = (Dog)animal;
//            dog.run();
//            dog.swim();
//        }else if(animal instanceof Bird){
//            Bird bird = (Bird)animal;
//            bird.fly();
//        }else if(animal instanceof  Duck){
//            Duck duck = (Duck)animal;
//            duck.fly();
//            duck.run();
//            duck.swim();
//        }
//    }

//    public static void main(String[] args) {
//        Dog dog = new Dog("旺财",3);
//        Bird bird = new Bird("鹏鹏",6);
//        Duck duck = new Duck("阳阳",7);
//
//        test1(dog);
//        test1(bird);
//        test1(duck);

//        test2(dog);
//        test2(bird);
//        test2(duck);

    }
}
